DoS attack(Denial of Service attack),中文譯名為阻斷服務攻擊,其目的為透過特殊的攻擊方式來耗盡提供服務伺服器的資源或是頻寬,以達到讓其他的使用者無法使用到服務,當這項攻擊是透過兩台以上的電腦或是殭屍網路來執行時則稱為 DDoS attack(distributed denial-of-service attack),中文名稱為分散式阻斷服務攻擊,在 DDoS attack 中又分為針對網路頻寬以及針對系統資源兩種不同類型的攻擊方式,以下的介紹也將由這兩種類型來做一個區別。
1. 網路頻寬:
這一類的攻擊主要是利用網路封包來占滿目標的全部頻寬,讓其他的使用者無法使用到目標所提供的服務。
ICMP / IGMP 洪水攻擊
ICMP 是用來查詢網路環境狀態的協定,IGMP 是用在管理網際網路群播成員的協定,這種攻擊是發送大量的這兩種協定的封包來消耗目標的頻寬資源。
UDP 洪水攻擊
UDP 主要是用來提供快速、輕便及較不可靠的資料傳送服務,由於傳送時不需要建立複雜的連線,所以被攻擊者用來洪水攻擊,在 UDP 攻擊中又分為小封包跟大封包兩種類方式,小封包(64 位元組)是要利用網路設備需要對每一個封包進行檢查的行為下增加設備的負擔,大封包(1500 位元組以上)是要迫使攻擊目標在接收到封包後要進行重組,來達到網路壅塞的目的。
以上的兩種攻擊方式屬於直接攻擊,這類型的攻擊方式較單純,容易被過濾,雖然可以透過偽造來源 IP 的位址來掩飾攻擊主機的 IP位址,但效果不彰,接下來要介紹的反射攻擊就比直接攻擊來的有效率且隱密性較高,反射攻擊又可以分為以下四種類型。
ACK 反射攻擊
主要是利用 TCP 三向交握的機制來做攻擊,攻擊者將 SYN 訊息來源的 IP 位址修改成目標的 IP 位址,伺服器在接收到 SYN 訊息後會回傳一個 ACK 訊息給目標,這樣攻擊者就能比較有效的去隱藏攻擊的來源。
DNS 放大攻擊
DNS(Domain Name System)是用來將網域名稱跟 IP 位址互相映射的一個服務,當使用者輸入網址的時候,電腦就會先去傳送查詢的封包到 DNS 伺服器,然後接收對映的 IP開始後建立連線,一般來說回傳的封包因為包含查詢的結果,所以封包都會大於請求的封包,這種攻擊就稱為放大式攻擊,這種攻擊是由攻擊者先提出查詢請求,並在來源端修改成目標的 IP,讓放大後的查詢結果導向目標。
NTP 放大攻擊
NTP(Network Time Protocol)是用來使電腦時間同步化的一種協定,使用者可以透過協定與伺服器校正自身電腦的時間,攻擊者利用 monlist 這項功能的安全漏洞來取得最近與伺服器連接的電腦列表,並透過填入假的來源 IP 來將這份列表傳給目標來進行放大式攻擊。
SNMP 放大攻擊
SNMP(Simple Network Management Protocol)是目前網路中應用較為廣泛的網路管理協定,他提供了一套管理方式來監控和維護網路設備,其中一個管理的指令 GetBulk 是用來一次取得大量網管資訊庫的指令,與 NTP 放大攻擊相同,將來源 IP 更改為目標 IP 來進行攻擊。
2. 系統資源:
TCP 連接洪水攻擊
主要是利用三向交握的性質來進行攻擊,每台伺服器所能建立的連線是由一個連接表來記錄,這些連接的數量是有限制的,當連接的數量超過伺服器所能負擔的數量,就無法在與之後的使用者建立連線來提供服務。
SYN 洪水攻擊
同樣是利用三向交握的性質來進行攻擊,攻擊者對伺服器送出一個 SYN,在伺服器回傳 SYN + ACK 後不發送最後的 ACK ,讓這條連線處於空窗的狀態,隨著空窗的連線越來越多,能夠正常使用的部分也越來越少來達到阻斷攻擊的效果。
RST 洪水攻擊
在 TCP 連線要終止的時候,通常都是透過傳送 FIN 訊號進行四次揮手來終止,但是當兩邊其中一方有出現異常狀態時,無法進行完整的四次揮手時就會傳送 RST 來將連線強制中斷,攻擊者趁著目標與他人建立連線時,模仿目標來傳送 RST 來阻礙目標使用其他服務。
THC SSL DoS 攻擊
在進行 SSL 連線時都先需要進行 SSL 握手,雙方交換加密金鑰,來進行身分認證,在正常的情況下這個過程只需要執行一次,THC SSL DoS 攻擊是利用 Renegotiation 選項去重複執行這個協商金鑰過程,讓伺服器因為要運算金鑰而耗費大量資源。
LAND 攻擊
攻擊者發送一個來源 IP 為目標 IP 位址封包給目標,這樣目標會將這個封包回傳給自己形成無窮迴圈,最終耗盡資源。
希望有興趣的讀者也能夠點個追蹤,有任何問題或有想多了解的地方也可以回覆在文章底下唷,謝謝你們XDDDD!
參考來源:
碁峯出版社,DDoS 分散是阻斷服務攻擊深度解析
webnms SNMP GETBULK https://www.webnms.com/snmp/help/snmpapi/snmpv3/snmp_operations/snmp_getbulk.html
Tsung's Blog https://blog.longwin.com.tw/2014/02/ntp-attack-news-detect-2014/
radware DDoS Attack Definitions - DDoSPedia https://security.radware.com/ddos-knowledge-center/ddospedia/land-attack/
耶耶耶 是 Dos & DDos =v=+
想問茶茶大大通常是怎麼解呢…
我們家是主推 WAF 去擋啦,要不然就會偷偷借個強大的設備這樣…
想知道解法 XD
我們 IPS 的解法會是
虎虎大大XD
剛剛問了一下我們IPS的大佬,
通常還是要用設備,畢竟IP是抓不完的XD,
自己解的話可能就要設定流量的spec值來攔截可疑IP了
IP 真的抓不完呀 XD
我們家通常都用 WAF處理掉大部份啦…
可疑來源太多了啦… 很多都嘛肉雞 XDDD
我記得常常處理的就是回公司搬設備臨時去擋個幾天 Q"Q
然後等對方打完之後,再把借去設備還給我們…
根本搬運工 XD
我比較好奇是否有防範自己的網路設備,避免成為幫兇的辦法。
SANS是有一些推薦但這是2000年的資訊,不知道有沒有新的措施
https://www.sans.org/dosstep/
Hi, frankyzyao大大您好壓,可以先參照一下這篇文件https://f5.com/Portals/1/Premium/Architectures/RA-DDoS-Playbook-Recommended-Practices.pdf
裡面對於防範 DDoS 有些概念性的處理方式。
至於如何防止自身變成 Botnet 的一部分,主要可以定期注意自己網路設備的 log 檔,檢查有沒有異常的連線,因為當該設備成為 Botnet 的一員時,都會主動向負責發號司令的伺服器回報自身的相關訊息唷。